Setting Up WordPress on Ubuntu with Apache2, MySQL, and SSL
Ubuntu is a great hosting environment choice if you want to build a strong and secure WordPress website. In this tutorial, we’ll show you how to install WordPress, Apache, MySQL, and SSL encryption on a server running Ubuntu. You’ll have a fully operational WordPress site with HTTPS enabled by the end of this lesson.
Step 1: Install Apache Server
To start, let’s install the Apache web server on your Ubuntu server:
1 2 | sudo apt update sudo apt install apache2 |
Apache will serve as the web server for your WordPress site.
Step 2: Install PHP and MySQL Connector
WordPress is built on PHP, and it requires a MySQL database. Install PHP and the PHP MySQL connector with the following commands:
1 | sudo apt install php libapache2-mod-php php-mysql |
Step 3: Install MySQL Server
MySQL is the database management system that WordPress will use to store your website’s data. Install MySQL Server:
1 | sudo apt install mysql-server |
Step 4: Login to MySQL Server
Once MySQL is installed, log in to the MySQL server as the root user:
1 | sudo mysql -u root |
Check out below article to install PHPMyAdmin for MySQL if needed
How to Install Phpmyadmin in ubuntu.
Step 5: Change the Authentication Plugin and Password
For improved security, change the authentication plugin for the root user to mysql_native_password
and set a strong password:
1 | ALTER USER 'root' @ 'localhost' IDENTIFIED WITH mysql_native_password by 'YourStrongPassword' ; |
Replace 'YourStrongPassword'
with your desired password.
Step 6: Create a New Database User
Now, create a new MySQL user for WordPress and set a strong password:
1 | CREATE USER 'wp_user' @localhost IDENTIFIED BY 'YourStrongPassword' ; |
Step 7: Create a Database for WordPress
Create a new database that WordPress will use:
1 | CREATE DATABASE wordpressDB; |
Step 8: Grant Privileges
Grant all privileges on the ‘wp’ database to the ‘wp_user’ you created earlier:
1 | GRANT ALL PRIVILEGES ON wordpressDB.* TO 'wp_user' @localhost; |
Step 9: Download WordPress
Navigate to the /tmp
directory and download the latest version of WordPress:
1 2 | cd /tmp wget https: //wordpress .org /latest . tar .gz |
Step 10: Unzip WordPress
Unzip the downloaded WordPress archive.
1 | tar -xvf latest. tar .gz |
Step 11: Move WordPress Files
Move the WordPress files to the Apache document root:
1 | sudo mv wordpress/ /var/www/html |
Step 12: Restart Apache
To apply the changes, restart the Apache web server:
1 | sudo systemctl restart apache2 |
Alternatively, you can use sudo systemctl reload apache2
to reload the configuration.
Follow the link below to configure the Apache site, which will help in configuring your IP address to the domain. This will also assist in configuring WordPress permalinks.
https://getcodify.com/how-to-enable-permalinks-in-wordpress-ubuntu-apache2/
Step 13: Install Certbot
Let’s secure your website with SSL encryption. Install Certbot to simplify the process:
1 2 | sudo apt update sudo apt install certbot python3-certbot-apache |
Step 14: Request and Install SSL Certificate
Use Certbot to request and install an SSL certificate for your site:
1 | sudo certbot --apache |
Follow the prompts to configure SSL for your domain. Once the process is complete, your WordPress site will be accessible via HTTPS, ensuring data encryption and security.
In some hostings, by default, Http/Https might not be enabled. To allow traffic on ports 80 (HTTP) and 443 (HTTPS) through the Ubuntu firewall (UFW), follow these additional steps:
Step 15: Enable UFW for Ports 80 and 443
Ubuntu comes with the Uncomplicated Firewall (UFW) tool, which simplifies the process of managing your server’s firewall rules.
15.1: Check UFW Status
First, check the status of UFW to ensure it’s installed and inactive:
1 2 3 4 5 | sudo ufw status #If UFW is not installed, you can install it with: sudo apt install ufw |
15.2: Allow HTTP (Port 80/443)
To enable incoming HTTP traffic on port 80, run the following command:
1 2 3 4 5 | #port 80 sudo ufw allow 80 /tcp #port 443 sudo ufw allow 443 /tcp |
15.3: Enable UFW
Enable UFW to activate the firewall with the new rules:
1 2 3 4 5 | #Enable UFW sudo ufw enable #Check status sudo ufw status |
You should see the rules for ports 80 and 443 as “ALLOW.” Your server is now configured to allow incoming web traffic on these ports while maintaining a basic level of security.
Arjun is a Full-stack developer, who is fond of the web. Lives in Chikmagalur, Karnataka, India